<?php

class Coutas_Model extends CI_Model {

    function grabarCancelaS($parameters) {
        $insert = array(
            "planes_semestre_ide_plan" => $parameters['planes_semestre_ide_plan'],
            "valor_cuota1" => $parameters['valor_cuota1'],
            "obser_cuota1" => $parameters['obser_cuota1'],
            "canc_cuota1" => $parameters['canc_couta1'],
            "valor_cuota2" => $parameters['valor_cuota2'],
            "obser_cuota2" => $parameters['obser_cuota2'],
            "canc_cuota2" => $parameters['canc_couta2'],
            "valor_cuota3" => $parameters['valor_cuota3'],
            "obser_cuota3" => $parameters['obser_cuota3'],
            "canc_cuota3" => $parameters['canc_couta3'],
            "valor_cuota4" => $parameters['valor_cuota4'],
            "obser_cuota4" => $parameters['obser_cuota4'],
            "canc_cuota4" => $parameters['canc_couta4'],
            "valor_cuota5" => $parameters['valor_cuota5'],
            "obser_cuota5" => $parameters['obser_cuota5'],
            "canc_cuota5" => $parameters['canc_couta5'],
            "valor_cuota6" => $parameters['valor_cuota6'],
            "obser_cuota6" => $parameters['obser_cuota6'],
            "canc_cuota6" => $parameters['canc_couta6'],
            "valor_cuota7" => $parameters['valor_cuota7'],
            "obser_cuota7" => $parameters['obser_cuota7'],
            "canc_cuota7" => $parameters['canc_couta7'],
            "administrativos_ide_adm" => 1);
        //print_r($insert);
        $this->db->insert("cancela_plan_semestre", $insert);
        return $this->db->insert_id();
    }

    function grabarCancelaA($parameters) {
        $insert = array(
            "planes_arrastre_ide_plan" => $parameters['planes_arrastre_ide_plan'],
            "valor_cuota1" => $parameters['valor_cuota1'],
            "obser_cuota1" => $parameters['obser_cuota1'],
            "canc_cuota1" => $parameters['canc_couta1'],
            "valor_cuota2" => $parameters['valor_cuota2'],
            "obser_cuota2" => $parameters['obser_cuota2'],
            "canc_cuota2" => $parameters['canc_couta2'],
            "valor_cuota3" => $parameters['valor_cuota3'],
            "obser_cuota3" => $parameters['obser_cuota3'],
            "canc_cuota3" => $parameters['canc_couta3'],
            "valor_cuota4" => $parameters['valor_cuota4'],
            "obser_cuota4" => $parameters['obser_cuota4'],
            "canc_cuota4" => $parameters['canc_couta4'],
            "valor_cuota5" => $parameters['valor_cuota5'],
            "obser_cuota5" => $parameters['obser_cuota5'],
            "canc_cuota5" => $parameters['canc_couta5'],
            "valor_cuota6" => $parameters['valor_cuota6'],
            "obser_cuota6" => $parameters['obser_cuota6'],
            "canc_cuota6" => $parameters['canc_couta6'],
            "valor_cuota7" => $parameters['valor_cuota7'],
            "obser_cuota7" => $parameters['obser_cuota7'],
            "canc_cuota7" => $parameters['canc_couta7'],
            "administrativos_ide_adm" => 1);
        //$this->db->insert("cancela_plan_semestre", $insert);
        $this->db->insert("cancela_plan_arrastre", $insert);
        return $this->db->insert_id();
    }

    function grabarCancelaT($parameters) {
        $insert = array(
            "planes_tesis_ide_plan" => $parameters['planes_tesis_ide_plan'],
            "valor_cuota1" => $parameters['valor_cuota1'],
            "obser_cuota1" => $parameters['obser_cuota1'],
            "canc_cuota1" => $parameters['canc_couta1'],
            "valor_cuota2" => $parameters['valor_cuota2'],
            "obser_cuota2" => $parameters['obser_cuota2'],
            "canc_cuota2" => $parameters['canc_couta2'],
            "valor_cuota3" => $parameters['valor_cuota3'],
            "obser_cuota3" => $parameters['obser_cuota3'],
            "canc_cuota3" => $parameters['canc_couta3'],
            "valor_cuota4" => $parameters['valor_cuota4'],
            "obser_cuota4" => $parameters['obser_cuota4'],
            "canc_cuota4" => $parameters['canc_couta4'],
            "valor_cuota5" => $parameters['valor_cuota5'],
            "obser_cuota5" => $parameters['obser_cuota5'],
            "canc_cuota5" => $parameters['canc_couta5'],
            "valor_cuota6" => $parameters['valor_cuota6'],
            "obser_cuota6" => $parameters['obser_cuota6'],
            "canc_cuota6" => $parameters['canc_couta6'],
            "valor_cuota7" => $parameters['valor_cuota7'],
            "obser_cuota7" => $parameters['obser_cuota7'],
            "canc_cuota7" => $parameters['canc_couta7'],
            "administrativos_ide_adm" => 1);
        //$this->db->insert("cancela_plan_semestre", $insert);
        $this->db->insert("cancela_plan_tesis", $insert);
        return $this->db->insert_id();
    }

    function actualizarCiclo($parameters, $ide) {
        $update = array(
            "ide_pen" => $parameters['ide_pen'],
            "codigo_cic" => $parameters['codigo_cic'],
            "nombre_cic" => $parameters['nombre_cic'],
            "eliminado_cic" => 0);
        $this->db->where("ide_cic", $ide);
        $this->db->update("ciclos", $update);
    }

    function getDatosCiclo($ide) {
        $this->db->where('ide_cic', $ide);
        $this->db->where('eliminado_cic', 0);
        $query = $this->db->get('ciclos');
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
        }
        $query->free_result();
        return $data;
    }

    function getListado() {

        $this->db->select('carrera.ide_car,carrera.nombre_car,pensum.descripcion_pen,
            pensum.estado_pen,ciclos.ide_cic,ciclos.nombre_cic');
        $this->db->from('carrera');
        $this->db->join('pensum', 'carrera.ide_car = pensum.ide_car', 'inner');
        $this->db->join('ciclos', 'pensum.ide_pen = ciclos.ide_pen', 'inner');
        $this->db->where('carrera.eliminado_car', 0);
        $this->db->where('pensum.eliminado_pen', 0);
        $this->db->where('ciclos.eliminado_cic', 0);
        $this->db->order_by("carrera.nombre_car");
        $this->db->order_by("ciclos.nombre_cic");

        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $query->free_result();
            return $data;
        } else {
            return null;
        }
    }

    function eliminarCiclo($ide) {
        $update = array("eliminado_cic" => 1);
        $this->db->where("ide_cic", $ide);
        $this->db->update("ciclos", $update);
    }

    function VerificarCoutaCancelada($ide_plan, $couta) {
        $encontrado = TRUE;
        $this->db->select('cancela_plan_semestre.' . $couta . ' as cancela');
        $this->db->distinct();
        $this->db->from('planes_pago_arrastre');
        $this->db->join('cancela_plan_semestre', 'planes_pago_arrastre.ide_plan = cancela_plan_semestre.planes_semestre_ide_plan', 'inner');
        $this->db->where('planes_pago_arrastre.ide_plan ', $ide_plan);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            if ($data[0]['cancela'] == 1)
                $encontrado = TRUE;
            else
                $encontrado = FALSE;
        } else {
            $encontrado = FALSE;
        }
        $query->free_result();
        return $encontrado;
    }

    function getListaAdeudanCoutrasCriterio($valor, $tipo, $ide_pen) {
        if ($tipo == 1)
            $criterio = "persona.cedula_pers LIKE '%$valor%'";
        elseif ($tipo == 2)
            $criterio = "persona.apellido_pers LIKE '%$valor%'";
        else
            $criterio = "persona.nombre_pers LIKE '%$valor%'";

        $cadsql = " matriculas.id_matr,persona.cedula_pers,persona.apellido_pers"
                . ",persona.nombre_pers,planes_pago_semestre.valor_financiar"
                . ",planes_pago_semestre.nro_cuotas_plan,planes_pago_semestre.tabla_plan"
                . ",planes_pago_semestre.nro_coutas_canc"
                . " FROM persona"
                . " INNER JOIN estudiante "
                . "    ON (persona.ide_pers = estudiante.ide_est)"
                . " INNER JOIN matriculas "
                . "     ON (estudiante.ide_est = matriculas.estudiante_ide_est)"
                . " INNER JOIN cursa "
                . "     ON (matriculas.id_matr = cursa.matriculas_id_matr)"
                . " INNER JOIN planes_pago_semestre "
                . "     ON (cursa.matriculas_id_matr = planes_pago_semestre.matriculas_id_matr)"
                . "  WHERE (cursa.periodos_lectivos_ide_lec =" . $ide_pen
                . " AND " . $criterio . ")"
                . " HAVING nro_coutas_canc<nro_cuotas_plan"
                . " UNION ALL"
                . " (SELECT DISTINCT matriculas.id_matr,persona.cedula_pers, persona.apellido_pers"
                . " ,persona.nombre_pers,planes_pago_arrastre.valor_financiar"
                . " ,planes_pago_arrastre.nro_cuotas_plan,planes_pago_arrastre.tabla_plan"
                . " ,planes_pago_arrastre.nro_coutas_canc"
                . " FROM persona"
                . " INNER JOIN estudiante "
                . "     ON (persona.ide_pers = estudiante.ide_est)"
                . " INNER JOIN matriculas "
                . "     ON (estudiante.ide_est = matriculas.estudiante_ide_est)"
                . " INNER JOIN cursa "
                . "     ON (matriculas.id_matr = cursa.matriculas_id_matr)"
                . " INNER JOIN planes_pago_arrastre "
                . "     ON (cursa.matriculas_id_matr = planes_pago_arrastre.matriculas_id_matr)"
                . "  WHERE (cursa.periodos_lectivos_ide_lec =" . $ide_pen
                . " AND " . $criterio . ")"
                . " HAVING nro_coutas_canc<nro_cuotas_plan)"
                . " UNION ALL"
                . " (SELECT DISTINCT matriculas.id_matr,persona.cedula_pers, persona.apellido_pers"
                . " , persona.nombre_pers, planes_pago_tesis.valor_financiar"
                . " ,planes_pago_tesis.nro_cuotas_plan,planes_pago_tesis.tabla_plan"
                . " ,planes_pago_tesis.nro_coutas_canc"
                . " FROM persona"
                . " INNER JOIN estudiante "
                . "     ON (persona.ide_pers = estudiante.ide_est)"
                . " INNER JOIN matriculas "
                . "     ON (estudiante.ide_est = matriculas.estudiante_ide_est)"
                . " INNER JOIN cursa "
                . "     ON (matriculas.id_matr = cursa.matriculas_id_matr)"
                . " INNER JOIN planes_pago_tesis "
                . "     ON (cursa.matriculas_id_matr = planes_pago_tesis.matriculas_id_matr)"
                . "  WHERE (cursa.periodos_lectivos_ide_lec =" . $ide_pen
                . " AND " . $criterio . ")"
                . " HAVING nro_coutas_canc<nro_cuotas_plan)";

        //. " ORDER BY cedula_pers";
        //echo $cadsql;
        $query = $this->db->select($cadsql);
        $this->db->distinct();


        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
        }
        $query->free_result();
        //print_r($data);
        return $data;
    }

    function getListaAdeudanCoutras($ide_pen) {
        $cadsql = " matriculas.id_matr,persona.cedula_pers,persona.apellido_pers"
                . ",persona.nombre_pers,planes_pago_semestre.valor_financiar"
                . ",planes_pago_semestre.nro_cuotas_plan,planes_pago_semestre.tabla_plan"
                . ",planes_pago_semestre.nro_coutas_canc"
                . " FROM persona"
                . " INNER JOIN estudiante "
                . "    ON (persona.ide_pers = estudiante.persona_ide_pers)"
                . " INNER JOIN matriculas "
                . "     ON (estudiante.ide_est = matriculas.estudiante_ide_est)"
                . " INNER JOIN cursa "
                . "     ON (matriculas.id_matr = cursa.matriculas_id_matr)"
                . " INNER JOIN planes_pago_semestre "
                . "     ON (cursa.matriculas_id_matr = planes_pago_semestre.matriculas_id_matr)"
                . "  WHERE (cursa.periodos_lectivos_ide_lec =" . $ide_pen . ")"
                . " HAVING nro_coutas_canc<=nro_cuotas_plan"
                . " UNION ALL"
                . " (SELECT DISTINCT matriculas.id_matr,persona.cedula_pers, persona.apellido_pers"
                . " ,persona.nombre_pers,planes_pago_arrastre.valor_financiar"
                . " ,planes_pago_arrastre.nro_cuotas_plan,planes_pago_arrastre.tabla_plan"
                . " ,planes_pago_arrastre.nro_coutas_canc"
                . " FROM persona"
                . " INNER JOIN estudiante "
                . "     ON (persona.ide_pers = estudiante.persona_ide_pers)"
                . " INNER JOIN matriculas "
                . "     ON (estudiante.ide_est = matriculas.estudiante_ide_est)"
                . " INNER JOIN cursa "
                . "     ON (matriculas.id_matr = cursa.matriculas_id_matr)"
                . " INNER JOIN planes_pago_arrastre "
                . "     ON (cursa.matriculas_id_matr = planes_pago_arrastre.matriculas_id_matr)"
                . "  WHERE (cursa.periodos_lectivos_ide_lec =" . $ide_pen . ")"
                . " HAVING nro_coutas_canc<=nro_cuotas_plan)"
                . " UNION ALL"
                . " (SELECT DISTINCT matriculas.id_matr,persona.cedula_pers, persona.apellido_pers"
                . " , persona.nombre_pers, planes_pago_tesis.valor_financiar"
                . " ,planes_pago_tesis.nro_cuotas_plan,planes_pago_tesis.tabla_plan"
                . " ,planes_pago_tesis.nro_coutas_canc"
                . " FROM persona"
                . " INNER JOIN estudiante "
                . "     ON (persona.ide_pers = estudiante.persona_ide_pers)"
                . " INNER JOIN matriculas "
                . "     ON (estudiante.ide_est = matriculas.estudiante_ide_est)"
                . " INNER JOIN cursa "
                . "     ON (matriculas.id_matr = cursa.matriculas_id_matr)"
                . " INNER JOIN planes_pago_tesis "
                . "     ON (cursa.matriculas_id_matr = planes_pago_tesis.matriculas_id_matr)"
                . "  WHERE (cursa.periodos_lectivos_ide_lec =" . $ide_pen . ")"
                . " HAVING nro_coutas_canc<=nro_cuotas_plan)"
                . " ORDER BY cedula_pers";
        //echo $cadsql;
        $query = $this->db->select($cadsql);
        $this->db->distinct();


        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
        }
        $query->free_result();
        //print_r($data);
        return $data;
    }

    //de jose
    /**
     * Para mostrar las coutas pagadas por los estudiantes
     * @param type $id_matricula el id de la matricula
     * @param type $tabla El nombre de la tabla de cancela_plan_?
     * @param type $tablaReferencia El nombre de la tabla hacer referencia planes_pago_?
     * @param type $id el identificador de la tabla de cancela_pagos
     * @return type El arreglo con los resultados
     */
    public function listarCoutas($id_matricula, $tabla, $tablaReferencia, $id) {
        $query = "select  " . $tabla . ".*, ".$tablaReferencia.".valor_financiar, ".$tablaReferencia.".nro_cuotas_plan "." from " . $tabla . " inner join " . $tablaReferencia . " on " . $tablaReferencia . ".ide_plan = " . $tabla."." . $id .
                " where " . $tablaReferencia . ".matriculas_id_matr=" . $id_matricula;
        $Q = $this->db->query($query);
        //echo $this->db->last_query().'</br>';
        return $Q->result_array();
    }
    public function obtenerCoutasCanceladas($id_cancela, $tabla, $tablaReferencia, $id) {
        $query = "select  " . $tabla . ".* from " . $tabla . " inner join " . $tablaReferencia . " on " . $tablaReferencia . ".ide_plan = " . $tabla."." . $id .
                " where ide_canc=" . $id_cancela;
        $Q = $this->db->query($query);
        //echo $this->db->last_query().'</br>';
        return $Q->result_array();
    }
    public function listarCoutasAdeudadas($condicion, $tablaPlanes){
        $tipo = '';
        if($tablaPlanes=='planes_pago_semestre'){
            $tipo = "cursa.estado_cur=0 ";
        }else if($tablaPlanes== 'planes_pago_arrastre'){
            $tipo = "cursa.estado_cur=4 ";
        }
        $query="select ".$tablaPlane.".*, cursa.estudiante_ide_est, persona.cedula_pers, persona.apellido_pers, 
            persona.nombre_pers, cursa.seccion, cursa.paralelo, carrera.nombre_car, ciclos.nombre_cic,matriculas.nro_credito,matriculas.monto_canc_matr 
            from ".$tablaPlanes." 
            inner join cursa on cursa.matriculas_id_matr = ".$tablaPlanes.".matriculas_id_matr 
            inner join matriculas on matriculas.id_matr = cursa.matriculas_id_matr     
            inner join estudiante on estudiante.ide_est=cursa.estudiante_ide_est 
            inner join persona on persona.ide_pers = estudiante.persona_ide_pers 
            inner join ciclos on ciclos.ide_cic = cursa.ide_cic 
            inner join carrera on carrera.ide_car = cursa.ide_car                
            where ".$condicion." and (matriculas.inscrip_matr=3 or matriculas.inscrip_matr=4) 
                and matriculas.eliminado=0 
                and matriculas.estado_matr=2 
                and ".$tipo."
                group by matriculas.id_matr  order by persona.apellido_pers";
        
        /*
        $query="select ".$tablaPlanes.".*, cursa.estudiante_ide_est  
            from ".$tablaPlanes." 
            inner join cursa on cursa.matriculas_id_matr = ".$tablaPlanes.".matriculas_id_matr             
            inner join matriculas on matriculas.id_matr = cursa.matriculas_id_matr     
            where ".$condicion." and (matriculas.inscrip_matr=3 or matriculas.inscrip_matr=4) 
                and matriculas.eliminado=0 
                and matriculas.estado_matr=2 
                and ".$tipo."
                group by matriculas.id_matr";*/
        //print_r($query);
        $Q = $this->db->query($query);
        //echo $this->db->last_query().'</br>';
        return $Q->result_array();
    }
    
    
    public function eliminarPago($ide_cancela, $tablaReferencia){
        $this->db->where('ide_canc', $ide_cancela);
        $this->db->delete($tablaReferencia); 
    }
    
    function actualizarCuota($parameters, $ide,$tabla) {
        
        $this->db->where("ide_canc", $ide);
        $this->db->update($tabla, $parameters);
    }
}

